Skip to content

CI: build both bindings majors from main - #3175

Draft
rwgk wants to merge 8 commits into
rwgk/cb12-on-main-03-package-selectionfrom
rwgk/cb12-on-main-04-ci-builds
Draft

rwgk wants to merge 8 commits into
rwgk/cb12-on-main-03-package-selectionfrom
rwgk/cb12-on-main-04-ci-builds

Conversation

@rwgk

@rwgk rwgk commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Build CUDA 12 and CUDA 13 bindings from their source roots on main, replacing branch-sourced maintenance artifacts.

  • For ordinary PRs, reuse unaffected artifacts only from a successful push CI run on the PR base branch at the exact merge-base commit, with the complete required artifact set; otherwise build and test everything. Bindings release tags deliberately select only their matching bindings/metapackage line, without a reusable baseline.
  • For a bindings-only change, rebuild its bindings and matching metapackage, reuse the unchanged merged Core wheel, and retain Core tests against the affected bindings major. Core source changes rebuild both ABI variants.
  • Build both bindings lines and matching metapackages when required; route artifact downloads and source-distribution checks through the selected root.
  • Write each line's build paths and artifact names through the Python bindings_config write-build-env command, with a small shell wrapper for platform setup.
  • Keep concise component/major names in the PR checks view, including meta12 and meta13. The workplan summary exposes its JSON, including exact baseline identity and build/test decisions.
  • Test meaningful outcomes: selected coverage, correct release artifacts, complete merged Core wheels, and SCM milestones. Remove tests tied to Markdown wording, workflow text, or the exact shape of gh commands.

Version Bootstrap and Platform Boundary

Copying maintenance sources does not make their later branch tags ancestors of main. Package versions still follow standard setuptools-scm progression from the selected line's reachable tags. When suitable history is absent, bindings_scm_version.py creates a local preview tag at a validated ancestor in a disposable build checkout. Existing suitable tags take precedence; the helper never pushes or moves tags.

A plain maintenance checkout is not guaranteed to derive the intended next patch version before an appropriate milestone is reachable. The local preview instructions use an independent disposable clone because linked worktrees share tags. A retained milestone on validated main history, followed by removal of temporary bootstrap calls, remains a separate follow-up.

Windows ARM64 builds omit CUDA 12 because that toolkit has no Windows ARM64 build. Linux and Windows x86-64 retain both registered majors. The next layer supplies the matching test-workflow interfaces.

Stack / Review Boundary

Previous: #3174. Next: #3176. The stack overview lists all six open PRs and the intended workflow.

#3174 through #3176 are intended to land together, with separate review scopes and cumulative CI at #3176; the first two are incomplete intermediate states. Release routing (#3177), maintenance policy (#3178), and the runtime fixes (#3182) follow that group. The complete proposed source tree is at #3182.

Baseline: main 2e6aa4e9ef89.

Suggested Review Order

  1. ci/tools/compute_ci_plan.py - build/test selection and exact-baseline reuse.
  2. ci/tools/env-vars and bindings_config.py - the small shell wrapper and Python build-environment writer.
  3. .github/workflows/build-wheel.yml - builds, baseline downloads, and Core wheel merging.
  4. ci/tools/bindings_scm_version.py and the Linux / Windows sdist workflows - temporary local version bootstrap and source-package checks.
  5. ci/tools/download-wheels - keep unrelated toolkit lines and test artifacts out of release staging.

Validation

At the exact published heads, 328 CI-tool tests pass at #3176 and 341 at #3182. Full local pre-commit run --all-files --show-diff-on-failure passes at both, including actionlint and Lychee.

Planner regressions cover bindings-only Core reuse, affected-major testing, and full rebuilds when the exact baseline is unavailable. Local Git tests cover SCM bootstrap/progression and preservation of existing tags. A direct comparison matched all 26 build-environment values on Linux x86_64 and aarch64.

This intermediate layer is not independently actionlint-clean: callers pass bindings-config, while reusable test workflows still require build-ctk-ver. #3176 updates those interfaces. Hosted integration: full CI for the combined #3174–#3176 state.

Checklist

  • Focused tests protect selection, packaging, and release outcomes that could fail silently.
  • This description identifies the layer's scope and validation boundary.

@rwgk rwgk added this to the cuda.bindings next milestone Oct 21, 2026
@rwgk rwgk added enhancement Any code-related improvements CI/CD CI/CD infrastructure cuda.bindings Everything related to the cuda.bindings module labels Oct 21, 2026
@copy-pr-bot

copy-pr-bot Bot commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@rwgk rwgk self-assigned this Oct 21, 2026
@rwgk
rwgk added this pull request to stack #3179 October 21, 2026 04:48
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-04-ci-builds branch 2 times, most recently from 3feda76 to 0c4765b Compare October 21, 2026 13:57
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-04-ci-builds branch from 0c4765b to 044ddc6 Compare October 21, 2026 14:09
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-04-ci-builds branch from 044ddc6 to 171b820 Compare October 21, 2026 16:51
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-04-ci-builds branch 2 times, most recently from 4deddeb to ccb12ed Compare October 21, 2026 18:22
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-04-ci-builds branch 2 times, most recently from 820c4ca to 560ff7d Compare October 22, 2026 03:52
@mdboom
mdboom force-pushed the rwgk/cb12-on-main-04-ci-builds branch from 560ff7d to 7a269e9 Compare October 23, 2026 15:04
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-04-ci-builds branch from 7a269e9 to 595c0fd Compare October 25, 2026 23:56

@mdboom mdboom left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The most important thing here is to fix the cuda-core rebinding logic.

Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread ci/tools/compute_ci_plan.py Outdated
Comment thread ci/tools/compute_ci_plan.py Outdated
Comment thread .github/workflows/ci.yml
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-04-ci-builds branch from 595c0fd to ec1fc8a Compare October 26, 2026 21:35
rwgk added 8 commits October 26, 2026 17:21
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-04-ci-builds branch from ec1fc8a to 079a2a1 Compare October 27, 2026 00:23

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD CI/CD infrastructure cuda.bindings Everything related to the cuda.bindings module enhancement Any code-related improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants